home *** CD-ROM | disk | FTP | other *** search
-
- #include <stddef.h>
-
- typedef long SXint;
- typedef SXint SXbool;
- typedef double SXdouble;
- typedef void * SXobject;
-
- extern SXobject SXintToObject(SXint val);
- extern SXobject SXdoubleToObject(SXdouble val);
- extern SXobject SXmakeString(char *str);
-
- extern SXint SXintFrom(SXobject val);
- extern SXdouble SXdoubleFrom(SXobject val);
- extern char* SXstringOf(SXobject str);
-
- extern SXobject SXwriteString(SXobject stream, char *string);
-
- extern void SXthreadYield(void);
- extern void SXthreadIdle(void);
-
- extern SXobject trueObject;
- extern SXobject falseObject;
-
- /**************************/
-
- typedef SXobject SXclass;
- typedef char SXchar;
- typedef short SXshort;
-
- extern SXobject generalError;
- extern SXobject SXempty;
- extern SXobject SXundefined;
- extern SXobject SXunsupplied;
- extern SXobject SXextDebugStream(void);
-
- #define debug (SXextDebugStream())
-
- extern SXobject SXmakeNameInterned(char *str);
-
- /**************************/
-
- /* Helper functions */
-
- extern SXobject SXextMakeGlobal(char *moduleName, char *globalName, SXobject val);
- extern SXobject SXextMakeGeneric(char *moduleName, char *className, SXobject specializer, SXobject (*func)());
- extern SXobject SXextMakeFunction(char *moduleName, char *fnName,SXobject (*func)(), SXint minargs, SXint maxargs);
- extern SXobject SXextGetModule(char *moduleName);
- extern SXobject SXextGetGlobal(char *moduleName, char *globalName);
- extern SXobject SXextSetGlobal(char *moduleName, char *globalName, SXobject val);
- extern SXobject SXextGetIV(char *moduleName, SXobject obj, char *iv);
- extern SXobject SXextSetIV(char *moduleName, SXobject obj, char *iv, SXobject val);
- extern SXobject SXextCall(char *moduleName, char *generic, ... );
-
- extern void SXextReadStream(SXobject strm, void *buffer, SXint length);
- extern void SXextWriteStream(SXobject strm, void *buffer, SXint length);
-
- /* Accessor functions for MemoryObject class */
-
- #define EXT_TYPE_SXCHAR 1
- #define EXT_TYPE_SXSHORT 2
- #define EXT_TYPE_SXINT 3
- #define EXT_TYPE_SXDOUBLE 4
- #define EXT_TYPE_SXN_CHAR 5
- #define EXT_TYPE_SXCHAR_STAR 6
-
- #define EXT_SIZE(baseType) (sizeof(baseType))
- #define EXT_ELEMENT(sxname,sxtype,baseType,theField) \
- (sxname), ((SXint)(sxtype)), ((SXint)offsetof(baseType,theField))
-
- extern SXobject SXextMakeMemoryObject(SXint size, ... );
- extern SXobject SXreadAt(SXobject extmem, void *buffer, SXint offset, SXint length);
- extern SXobject SXwriteAt(SXobject extmem, void *buffer, SXint offset, SXint length);
- extern SXint SXlockMem(SXobject extmem);
- extern SXint SXunlockMem(SXobject extmem);
- extern void *SXdereference(SXobject extmem);
-
-